package models

import (
	"time"

	"gorm.io/gorm"
)

// SysAuditLog 审计日志结构
type SysAuditLog struct {
	BaseModel
	UserID     uint   `json:"userId"`
	Username   string `json:"username"`
	TenantID   uint   `json:"tenantId"`
	Action     string `json:"action"`     // 操作类型
	Resource   string `json:"resource"`   // 资源类型
	ResourceID uint   `json:"resourceId"` // 资源ID
	Details    string `json:"details"`    // 操作详情
	IP         string `json:"ip"`         // 客户端IP
	UserAgent  string `json:"userAgent"`  // 用户代理
}

// TableName 指定表名
func (*SysAuditLog) TableName() string {
	return "sys_audit_log"
}

// BeforeCreate 创建前设置创建时间
func (a *SysAuditLog) BeforeCreate(*gorm.DB) error {
	a.CreateAt = time.Now()
	a.UpdateAt = time.Now()
	return nil
}

// BeforeUpdate 更新前设置更新时间
func (a *SysAuditLog) BeforeUpdate(*gorm.DB) error {
	a.UpdateAt = time.Now()
	return nil
}
